package com.example.core.service;

import com.example.core.entity.DealerForm;

import java.security.NoSuchAlgorithmException;
import java.util.List;
import java.util.Map;

public interface DatabaseService {

    //1.填报信息统计表(JXS_REP_TOTAL_INFO) && 6、经销商税前净利润率分段信息表(JXS_REP_RATE_PROP)
    void handleJxsRepTotalInfo(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                               Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap);

    //2、关键指标概览总体表(JXS_REP_KPI_TTL)
    void handleJxsRepKpiTtl(String yearId, String quarterId, List<DealerForm> dealerList, List<DealerForm> regionDealerCount, Map<String, Object> carMap,
                            Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap) throws NoSuchAlgorithmException;

    //3.关键指标概览新车表(JXS_REP_KPI_NCS)
    void handleJxsRepKpiNcs(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                            Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap);

    //4、关键指标概览售后表(JXS_REP_KPI_AS)
    void handleJxsRepKpiAs(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                           Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap);

    //5、经销商盈利性分布表(JXS_REP_PROFIT_DISTRIBUTE)
    void handleJxsRepProfitDistribute(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                                      Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap);

    //7、盈利驱动分析信息表(JXS_REP_PROFIT_ANAL)
    void handleJxsRepProfitAnal(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                                Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap);

    //8、新车业务单元毛利贡献表(JXS_REP_NCS_GROSS_PROFIT)
    void handleJxsRepNcsGrossProfit(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                                    Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap);

    //9、售后业务单元毛利贡献表(JXS_REP_AS_GROSS_PROFIT)
    void handleJxsRepAsGrossProfit(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                                   Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap);

    //10、平均单店费用及费用率表(JXS_REP_AVREV_COST_RATIO)
    void handleJxsRepAvrevCostRatio(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                                    Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap);

    //11、平均单车费用表(JXS_REP_AVRCAR_COST)
    void handleJxsRepAvrcarCost(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                                Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap);

    //12、新车业务概览信息表（JXS_REP_NCS_TOTAL_INFO）
    void handleJxsRepNcsTotalInfo(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                                  Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap);

    //13、新车业务单元毛利贡献表(JXS_REP_NCS_GROSS_INFO)
    void handleJxsRepNcsGrossInfo(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                                  Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap);

    //14、新车毛利贡献预估表(JXS_REP_NCS_GROSS_PRO)
    void handleJxsRepNcsGrossPro(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                                 Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap);

    //15、新车衍生业务经营信息表(JXS_REP_NCS_DER_MANGE)
    void handleJxsRepNcsDerMange(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                                 Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap);

    //16、售后季度概览表(JXS_REP_AS_TOTAL_INFO)
    void handleJxsRepAsTotalInfo(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                                 Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap) throws NoSuchAlgorithmException;

    //16-1、售后业务单元毛利贡献预估表(JXS_REP_AS_GROSS_PRO)
    void handleJxsRepAsGrossPro(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                                Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap) throws NoSuchAlgorithmException;

    //17、售后业务单元总体盈利总体Ⅰ表(JXS_REP_AS_OUTPUT_GROSS)
    void handleJxsRepAsOutputGross(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                                   Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap) throws NoSuchAlgorithmException;

    //18、售后业务单元总体盈利总体Ⅱ表(JXS_REP_AS_OUTPUT_GROSS19)
    void handleJxsRepAsOutputGross19(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                                     Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap) throws NoSuchAlgorithmException;

    //19、售后业务单元盈利情况Ⅰ表(JXS_REP_AS_OUTPUT_NUM)
    void handleJxsRepAsOutputNum(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                                 Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap) throws NoSuchAlgorithmException;

    //20、售后业务单元盈利情况Ⅱ表(JXS_REP_AS_OUTPUT_RATE_TAX)
    void handleJxsRepAsOutputRateTax(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                                     Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap) throws NoSuchAlgorithmException;

    //21、二手车业务概览信息表(JXS_REP_UC_TOTAL_INFO)
    void handleJxsRepUcTotalInfo(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                                 Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap);

    //22、二手车业务概览信息表(JXS_REP_UC_REVENUE_GROSS)
    void handleJxsRepUcRevenueGross(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                                    Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap);

    //final
    void handleJxsWriteStatis(String yearId, String quarterId, List<DealerForm> dealerList, Map<String, Object> carMap,
                                    Map<String, Object> usedMap, Map<String, Object> saleMap, Map<String, Object> globalMap) throws Exception;



}
